1. Field of the Invention
The present invention relates to the field of random number generators and more specifically generators of random numbers in the form of bit flows originating from one or several digital or digitized noise sources.
2. Discussion of the Related Art
FIG. 1 very schematically shows in the form of blocks an example of a bit flow generator of the type to which the present invention applies.
Such a generator is based on the use of a noise source 1 (NS) providing an analog noise to an analog-to-digital conversion element 2 (A/D) clocked for example by a clock CLK and providing a bit flow BS. Source 1 is for example formed of one or several oscillators having their outputs summed up to provide an analog noise to the input of converter 2. Converter 2 may in simplified manner be an inverter associated with a flip-flop.
The quality of a random generator or more generally of a noise source is measured by the quality of its random character, which results in the equiprobability of the provided symbols, for example, the equiprobability of 0 and of 1 in the case where the source is considered bit by bit.
In practice, there may be a risk that the bit flow BS provided by converter 2 does not have an equiprobable distribution of its elements (bits or bit words). In particular, noise source 1 generally uses oscillators which risk synchronizing, together or with clock CLK. In case of a synchronization, the output state (bit flow) is periodic.
To improve the equiprobable character of a bit flow supposed to be random, bit flow BS crosses a normalization circuit 3 (NORM) providing a modified bit train NBS and having an improved equidistribution of the 0s and 1s in the flow.
FIG. 2 shows a conventional example of a circuit 3 for normalizing a bit flow BS applying a so-called Von Neumann method. Such a circuit 3 is based on an analysis of incoming bit flow BS, by bit pairs. A storage element 4 (BUFF) enabling processing the bits, in pairs, in a state determination circuit 5 which provides normalized bit flow NBS, is then used. According to the Von Neumann method, if the bit pair is 1-0, a state 1 is generated. If the bit pair is 0-1, a state 0 is generated. If the bit pair is 0-0 or 1-1, it is ignored, that is, no state is output. Other normalization methods exist, which may or may not apply the Von Neumann method.
A second example of normalization consists of calculating a parity bit over a predetermined length of the source and of only exploiting this parity bit. This method has been described in document RFC 1750 in December 1994.
In principle, the number of occurrences of 0 and 1 in flow BS is constant, which means that the noise source skew—or drift—is constant along time. Indeed, if this property is not respected on the noise source side, the normalization circuit does not have the expected effect of suppressing this drift in the bit flow.
The efficiency of a bit flow normalization circuit supposed to be random is particularly important since the random numbers are often used in ciphering applications or the like for which the loss of the random character of the number is a weakness.
A disadvantage of current normalized random number generators is that it is not known to check the elimination of a possible skew by the normalization circuit. This especially results from the fact that normalization methods only a priori assume, in their operation, that the noise source skew is constant.
A first problem is that if this skew becomes non constant, the bit flow provided by the normalization circuit no longer respects the desired equidistribution, without this being noticed.
A second problem is that an equidistribution over a great number of bits might be verified a posteriori at the output of a normalization circuit, but that it is not currently known to dynamically check this equiprobable character to rapidly detect a possible loss in the skew constancy in the noise source.